package com.operation;

/**
 * 运算抽象基类：定义所有运算的统一接口（依赖倒转原则）
 */
public abstract class Operation {
    /**
     * 抽象运算方法：计算两个数的结果
     * @param a 第一个运算数（1-99）
     * @param b 第二个运算数（1-99）
     * @return 运算结果（1-99）
     * @throws IllegalArgumentException 当结果超出范围或不满足运算规则（如除法非整除）时抛出
     */
    public abstract int calculate(int a, int b) throws IllegalArgumentException;
    
    /**
     * 获取运算符号（如"+"、"×"），供题目生成使用
     * @return 运算符号字符串
     */
    public abstract String getOperator();
}